package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.ProvideRecords;
import com.ruoyi.system.domain.excel.ProvideRecordsdExcel;
import org.apache.ibatis.annotations.Param;

/**
 * 配件库开票明细Service接口
 * 
 * @author ruoyi
 * @date 2024-05-07
 */
public interface IProvideRecordsService 
{
    /**
     * 查询配件库开票明细
     * 
     * @param id 配件库开票明细主键
     * @return 配件库开票明细
     */
    public ProvideRecords selectProvideRecordsById(Long id);

    /**
     * 查询配件库开票明细列表
     * 
     * @param provideRecords 配件库开票明细
     * @return 配件库开票明细集合
     */
    public List<ProvideRecords> selectProvideRecordsList(ProvideRecords provideRecords);

    /**
     * 新增配件库开票明细
     * 
     * @param provideRecords 配件库开票明细
     * @return 结果
     */
    public int insertProvideRecords(ProvideRecords provideRecords);

    /**
     * 修改配件库开票明细
     * 
     * @param provideRecords 配件库开票明细
     * @return 结果
     */
    public int updateProvideRecords(ProvideRecords provideRecords);

    /**
     * 批量删除配件库开票明细
     * 
     * @param ids 需要删除的配件库开票明细主键集合
     * @return 结果
     */
    public int deleteProvideRecordsByIds(Long[] ids);

    /**
     * 删除配件库开票明细信息
     * 
     * @param id 配件库开票明细主键
     * @return 结果
     */
    public int deleteProvideRecordsById(Long id);

    public List<String> selectProductCode(@Param("list")List<String> productList);

    public List<Map<String,Object>> selectWareMoney(@Param("wareHouseCode")String wareHouseCode,@Param("createTime")String createTime,String provide);
    public List<Map<String,Object>> selectOutWareMoney(@Param("wareHouseCode")String wareHouseCode,@Param("createTime")String createTime,@Param("provide")String provide);


    public Double selectSumMoney(@Param("provide")String provide,@Param("createTime")String createTime,@Param("wareHouseCode")String warehouseCode);

    public Double setlectSumProductMoney(@Param("provide")String provide,@Param("createTime")String createTime,@Param("wareHouseCode")String warehouseCode);

    public List<Map<String,Object>> selectProvideWareMoney(@Param("createTime")String createTime,@Param("provide")String provide);

    public List<String> selectProvideList(@Param("provide")String provide);

    public List<Map<String,Object>>  selectSumProfitMoney(@Param("startTime")String startTime);

    public Integer deleteUpload(@Param("time")String time);

    public List<ProvideRecordsdExcel> selectProvideExcelList(ProvideRecords provideRecords);

    public int insertBatch(List<ProvideRecords> provideRecordsList);

    public Double  selectAllMoney(@Param("provide")String provide,@Param("startTime")String startTime);

    public Double  selectMoney(@Param("provide")String provide,@Param("startTime")String startTime);
    public Double  selectAllMoneyPrice(@Param("provide")String provide,@Param("startTime")String startTime);

    public Double  selectAllMoneyCount(@Param("provide")String provide,@Param("startTime")String startTime);

    public Double  selectYSMoneyPrice3(@Param("startTime")String startTime);

    public Double  selectYSMoneyPrice10(@Param("startTime")String startTime);

    public Double  selectSDMoneyPrice(@Param("startTime")String startTime);
    public Double  selectSDMoneyPricePt(@Param("startTime")String startTime);
    public Double  selectSDMoneyPriceLT(@Param("startTime")String startTime);

    public Double  selectXHMoneyPriceZXK(@Param("startTime")String startTime);

    public Double  selectXHMoneyPrice(@Param("startTime")String startTime);

    public Double  selectYDMoneyPrice(@Param("startTime")String startTime);

    public Double  selectHXMoneyPrice(@Param("startTime")String startTime);

    public Double  selectHXMoneyRHY(@Param("startTime")String startTime);

    public Double  selectPRCMoneyRHY(@Param("startTime")String startTime);

    public Double  selectDLMoneyRHY(@Param("startTime")String startTime);

    public Double  selectYYMoneyRHY(@Param("startTime")String startTime);

    public Double  selectSDMoneyPriceRHY(@Param("startTime")String startTime);

    public Double  selectYSMoneyPrice(@Param("startTime")String startTime);
    public Double  selectYSMoneyPriceRHY(@Param("startTime")String startTime);

    public Double  selectYSMoneyPricePt(@Param("startTime")String startTime);

}
